package io.renren.modules.user.entity;

import com.fasterxml.jackson.annotation.JsonInclude;
import io.renren.common.annotation.Password;
import io.renren.common.annotation.Phone;
import io.renren.common.validator.group.AddGroup;
import io.renren.common.validator.group.UpdateGroup;
import org.hibernate.validator.constraints.NotBlank;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;


/**
 * 用户表
 * 
 * @author 
 * @email 
 * @date 2018-10-21 17:44:09
 */
@JsonInclude(JsonInclude.Include.NON_NULL)
public class UserinfosEntity implements Serializable {
	private static final long serialVersionUID = 1L;
	
	//用户id
	private String userinfoid;
	//用户账户
	@NotBlank(message="用户账户不能为空", groups = {AddGroup.class, UpdateGroup.class})
	private String useraccount;
	//用户密码
	@Password(groups={AddGroup.class, UpdateGroup.class})
	private String userpwd;
	private String salt;
	//用户名
	@NotBlank(message="用户名不能为空", groups = {AddGroup.class, UpdateGroup.class})
	private String username;
	//积分数量
	@NotNull(message="积分不能为空", groups = {UpdateGroup.class})
	private BigDecimal integralnumber;
	//性别
	@NotNull(message="性别不能为空", groups = {AddGroup.class, UpdateGroup.class})
	private Integer usergender;
	//用户头像
	@NotBlank(message="请上传用户头像", groups = {AddGroup.class, UpdateGroup.class})
	private String userheadpic;
	//手机号码
	@Phone(message="手机号码格式验证错误", groups = {AddGroup.class, UpdateGroup.class})
	@NotBlank(message="手机号码不能为空", groups = {AddGroup.class, UpdateGroup.class})
	private String phonenum;
	//手机号码备用字段
	private String phonenum2;
	//用户地址
	@NotBlank(message="用户地址不能为空", groups = {AddGroup.class, UpdateGroup.class})
	private String addressinfo;
	//注册时间
	private Date createtime;
	//更新信息时间
	private Date updatetime;
	//上一次登录时间
	private Date lastlogindate;
	//上次更新密码时间
	private Date lastpasswordchangeddate;
	//错误密码尝试次数
	private Integer failedpasswordattemptcount;
	//上一次错误密码时间
	private Date lastwrongpasswordtime;
	//是否Vips
	private Integer isvip;
	//会员信息Id
	private String vipinfoid;
	//用户锁定状态
	@NotNull(message="用户锁定状态不能为空", groups = {AddGroup.class, UpdateGroup.class})
	private Integer islockedout;
	//软删除
	@NotNull(message="软删除不能为空", groups = {AddGroup.class, UpdateGroup.class})
	private Integer isdel;
	//备用字段01
	private String varchar01;
	//备用字段02
	private String varchar02;

	public String getSalt() {
		return salt;
	}

	public void setSalt(String salt) {
		this.salt = salt;
	}

	/**
	 * 设置：用户id
	 */
	public void setUserinfoid(String userinfoid) {
		this.userinfoid = userinfoid;
	}
	/**
	 * 获取：用户id
	 */
	public String getUserinfoid() {
		return userinfoid;
	}
	/**
	 * 设置：积分数量
	 */
	public void setIntegralnumber(BigDecimal integralnumber) {
		this.integralnumber = integralnumber;
	}
	/**
	 * 获取：积分数量
	 */
	public BigDecimal getIntegralnumber() {
		return integralnumber;
	}
	/**
	 * 设置：用户账户
	 */
	public void setUseraccount(String useraccount) {
		this.useraccount = useraccount;
	}
	/**
	 * 获取：用户账户
	 */
	public String getUseraccount() {
		return useraccount;
	}
	/**
	 * 设置：用户密码
	 */
	public void setUserpwd(String userpwd) {
		this.userpwd = userpwd;
	}
	/**
	 * 获取：用户密码
	 */
	public String getUserpwd() {
		return userpwd;
	}
	/**
	 * 设置：用户名
	 */
	public void setUsername(String username) {
		this.username = username;
	}
	/**
	 * 获取：用户名
	 */
	public String getUsername() {
		return username;
	}
	/**
	 * 设置：性别
	 */
	public void setUsergender(Integer usergender) {
		this.usergender = usergender;
	}
	/**
	 * 获取：性别
	 */
	public Integer getUsergender() {
		return usergender;
	}
	/**
	 * 设置：用户头像
	 */
	public void setUserheadpic(String userheadpic) {
		this.userheadpic = userheadpic;
	}
	/**
	 * 获取：用户头像
	 */
	public String getUserheadpic() {
		return userheadpic;
	}
	/**
	 * 设置：手机号码
	 */
	public void setPhonenum(String phonenum) {
		this.phonenum = phonenum;
	}
	/**
	 * 获取：手机号码
	 */
	public String getPhonenum() {
		return phonenum;
	}
	/**
	 * 设置：手机号码备用字段
	 */
	public void setPhonenum2(String phonenum2) {
		this.phonenum2 = phonenum2;
	}
	/**
	 * 获取：手机号码备用字段
	 */
	public String getPhonenum2() {
		return phonenum2;
	}
	/**
	 * 设置：用户地址
	 */
	public void setAddressinfo(String addressinfo) {
		this.addressinfo = addressinfo;
	}
	/**
	 * 获取：用户地址
	 */
	public String getAddressinfo() {
		return addressinfo;
	}
	/**
	 * 设置：注册时间
	 */
	public void setCreatetime(Date createtime) {
		this.createtime = createtime;
	}
	/**
	 * 获取：注册时间
	 */
	public Date getCreatetime() {
		return createtime;
	}
	/**
	 * 设置：更新信息时间
	 */
	public void setUpdatetime(Date updatetime) {
		this.updatetime = updatetime;
	}
	/**
	 * 获取：更新信息时间
	 */
	public Date getUpdatetime() {
		return updatetime;
	}
	/**
	 * 设置：上一次登录时间
	 */
	public void setLastlogindate(Date lastlogindate) {
		this.lastlogindate = lastlogindate;
	}
	/**
	 * 获取：上一次登录时间
	 */
	public Date getLastlogindate() {
		return lastlogindate;
	}
	/**
	 * 设置：上次更新密码时间
	 */
	public void setLastpasswordchangeddate(Date lastpasswordchangeddate) {
		this.lastpasswordchangeddate = lastpasswordchangeddate;
	}
	/**
	 * 获取：上次更新密码时间
	 */
	public Date getLastpasswordchangeddate() {
		return lastpasswordchangeddate;
	}
	/**
	 * 设置：错误密码尝试次数
	 */
	public void setFailedpasswordattemptcount(Integer failedpasswordattemptcount) {
		this.failedpasswordattemptcount = failedpasswordattemptcount;
	}
	/**
	 * 获取：错误密码尝试次数
	 */
	public Integer getFailedpasswordattemptcount() {
		return failedpasswordattemptcount;
	}

	public Date getLastwrongpasswordtime() {
		return lastwrongpasswordtime;
	}

	public void setLastwrongpasswordtime(Date lastwrongpasswordtime) {
		this.lastwrongpasswordtime = lastwrongpasswordtime;
	}

	/**
	 * 设置：是否Vip
	 */
	public void setIsvip(Integer isvip) {
		this.isvip = isvip;
	}
	/**
	 * 获取：是否Vip
	 */
	public Integer getIsvip() {
		return isvip;
	}
	/**
	 * 设置：会员信息Id
	 */
	public void setVipinfoid(String vipinfoid) {
		this.vipinfoid = vipinfoid;
	}
	/**
	 * 获取：会员信息Id
	 */
	public String getVipinfoid() {
		return vipinfoid;
	}
	/**
	 * 设置：用户锁定状态
	 */
	public void setIslockedout(Integer islockedout) {
		this.islockedout = islockedout;
	}
	/**
	 * 获取：用户锁定状态
	 */
	public Integer getIslockedout() {
		return islockedout;
	}
	/**
	 * 设置：软删除
	 */
	public void setIsdel(Integer isdel) {
		this.isdel = isdel;
	}
	/**
	 * 获取：软删除
	 */
	public Integer getIsdel() {
		return isdel;
	}
	/**
	 * 设置：备用字段01
	 */
	public void setVarchar01(String varchar01) {
		this.varchar01 = varchar01;
	}
	/**
	 * 获取：备用字段01
	 */
	public String getVarchar01() {
		return varchar01;
	}
	/**
	 * 设置：备用字段02
	 */
	public void setVarchar02(String varchar02) {
		this.varchar02 = varchar02;
	}
	/**
	 * 获取：备用字段02
	 */
	public String getVarchar02() {
		return varchar02;
	}
}
